package com.alibaba.citrus.cr.unified.inventory.dto.api.response;

import com.alibaba.citrus.cr.unified.inventory.dto.api.request.BaseDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author heyu
 * @description 调拨预报单列表数据
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class AllocateApplyOrderListDTO extends BaseDTO {

    /**
     * id
     */
    private Long id;

    /**
     * 明细行号
     */
    private Integer lineNo;
    /**
     * 外部行号
     */
    private Integer outLineNo;
    /**
     * 预报单号
     */
    private String code;
    /**
     * 外部预报单号
     */
    private String outAllocateApplyOrderId;

    /**
     * 调拨单号
     */
    private String allocateOrderNo;
    /**
     * 借货调拨单号
     */
    private String borrowGoodsTransfer0rderCode;
    /**
     * 状态
     */
    private Integer status;

    /**
     * 调拨类型
     */
    private Integer type;

    /**
     * 提报组织
     */
    private Long applyOrg;
    /**
     * 是否直发客户
     */
    private Boolean isDTC;
    /**
     * 客户
     */
    private String customer;
    /**
     * 客户名称(表中没有，需要接口查)
     */
    private String customerName;

    /**
     * 客户地址名称(表中没有，需要接口查)
     */
    private String customerAddressName;

    /**
     * 客户地址
     */
    private String customerAddress;
    /**
     * 货品组
     */
    private String goodsGroup;
    /**
     * 收货仓id
     */
    private Integer receiveWarehouseId;
    /**
     * 收货库区id
     */
    private Integer receiveCargoZoneId;

    /**
     * 收货仓-联系人(表中没有，需要接口查)
     */
    private String receiveWarehouseContacts;

    /**
     * 收货仓-电话(表中没有，需要接口查)
     */
    private String receiveWarehouseTelephone;

    /**
     * 收货仓-地址(表中没有，需要接口查)
     */
    private String receiveWarehouseAddress;

    /**
     * 单据原因
     */
    private String documentReason;
    /**
     * 发货仓id
     */
    private String shipWarehouseId;
    /**
     * 期望交货时间
     */
    private Date hopeDeliveryTime;
    /**
     * 生效时间
     */
    private Date takeEffectTime;
    /**
     * 失效时间/生效至
     */
    private Date invalidDate;

    /**
     * 单据日期
     */
    private Date orderTime;

    /**
     * 提交时间
     */
    private Date commitTime;

    /**
     * 更新时间
     */
    private Date gmtModified;

    /**
     * 确认时间
     */
    private Date confirmTime;
//    完成时间
    /**
     * 单据日期
     */
    private Date completeTime;

    /**
     * 创建人
     */
    private String creator;
    /**
     * 提交人
     */
    private String submitter;
    /**
     * 修改人
     */
    private String updater;

    /**
     * 发货仓库
     */
    private String shipWarehouse;

    /**
     * 销售组织
     */
    private String saleOrganizationCode;

    /**
     * 销售渠道
     */
    private String saleChannel;

    /**
     * 销售部门
     */
    private String saleDepartmentCode;

    /**
     * 总部内部售达方编号
     */
    private String sapInternalSalesBPCode;

    /**
     * 总部内部送达方编号
     */
    private String sapInternalDeliveryBPCode;

    /**
     * 总部售达方编号
     */
    private String sapSalesBPCode;

    /**
     * 总部送达方编号
     */
    private String sapDeliveryBPCode;

    /**
     * 总部成本中心
     */
    private String sapCostCenter;
    /**
     * 客户采购参考号
     */
    private String sapRefPoNo;

    /**
     * 总部渠道编码
     */
    private String headquartersChannelCode;

    /**
     * 总部组织编码
     */
    private String headquartersOrganizationCode;
    /**
     * 备注
     */
    private String remark;
    /**
     * 货品id
     */
    private String goodsId;
    /**
     * 货品名称
     */
    private String title;
    /**
     * 货品编码
     */
    private String scItemId;
    /**
     * 提报数量
     */
    private Integer applyQuantity;
    /**
     * 回复数量
     */
    private Integer replyQuantity;

    /**
     * 未回复量
     */
    private Integer noReplyQuantity;
    /**
     * 确认量
     */
    private Integer confirmQuantity;

    /**
     * 发货数量
     */
    private Integer deliverQuantity;

    /**
     * 未发量
     */
    private Integer notIssuedQuantity;
    /**
     * 到货量
     */
    private Integer arrivalQuantity;
    /**
     * 单价
     */
    private BigDecimal unitPrice;
    /**
     * 单位
     */
    private String uom;
    /**
     * 折扣
     */
    private BigDecimal discount;
    /**
     * 小计金额
     */
    private BigDecimal subtotalMoney;

    /**
     * 结算金额
     */
    private BigDecimal exchangeAmt;

    /**
     * 回复时间
     */
    private Date replyDate;

    /**
     * 是否关闭
     */
    private Boolean isClosed;

    /**
     * 关闭原因
     */
    private String closeReason;

    /**
     * 行备注
     */
    private String itemRemark;
    /**
     * 是否需要还货
     */
    private String sendBackRequired;

    /**
     * 运输方式
     */
    private String shipMethod;
    /**
     * 物流信息
     */
    private String logisticsInformation;
    /**
     * 发货仓类型
     */
    private String shipWarehouseType;
}
